const express = require('express')
const router = express.Router()
//引入token相关操作函数（包含生成和验证）
const jwt = require('../../jwt')
//引入数据模型
const User = require('../../models/users')
const fss = require('../../tools/fss')

//@POST /admin/reg   用户注册
router.post('/reg', (req, res) => {
  User.findOne({ username: req.body.username })
    .then((user) => {
      if (user) {
        return res.status(400).json('用户名已被注册')
      } else {
        User.create(req.body)
          .then((doc) => res.status(200).json(doc))
      }
    })
    .catch((err) => res.status(400).json(err))
})
//@POST /admin/login   用户登录
router.post('/login', async (req, res) => {
  try {
    const user = await User.findOne({
      username: req.body.username,
    })
    if (!user) {
      return res.status(400).json('用户未注册')
    }
    const isPasswordValid = (req.body.password == user.password)
    if (!isPasswordValid) {
      return res.status(400).json('用户名或密码错误')
    }
    //密码正确返回token
    const rule = {
      id: user.id,
      username: user.username,
      role: user.role,
      userimg:user.userimg,
      email:user.email,
      name:user.name
    }
    const token = jwt.setToken(rule)
    return res.status(200).json({
      message: '用户登陆成功',
      token: token
    })
  } catch (error) {
    return res.status(404).json(error)
  }
})
//@GET /admin/getall 
router.get('/getall', (req,res) => {
  User.find({}).then(doc => {
    res.send({
      state:1,
      users:doc
    })
  }).catch(err => res.status(400).json(err.message))
})

//暴漏路由器
module.exports = router

